File: supercite.info, Node: Mail Field Commands, Next: Miscellaneous Commands, Prev: Variable Toggling Shortcuts, Up: Post-yank Formatting Commands
Mail Field Commands
===================
These commands allow you to view, modify, add, and delete various
bits of information from the info alist. *Note Information Keys and
the Info Alist::.
`sc-mail-field-query' (`C-c C-p f')
Allows you to interactively view, modify, add, and delete info
alist key-value pairs. With no argument, you are prompted (with
completion) for a info key. The value associated with that key is
displayed in the minibuffer. With an argument, this command will
first ask if you want to view, modify, add, or delete an info key.
Viewing is identical to running the command with no arguments.
If you want to modify the value of a key, Supercite will first
prompt you (with completion) for the key of the value you want to
change. It will then put you in the minibuffer with the key's
current value so you can edit the value as you wish. When you hit
RET, the key's value is changed. For those of you running Emacs
19, minibuffer history is kept for the values.
If you choose to delete a key-value pair, Supercite will prompt
you (with completion) for the key to delete.
If you choose to add a new key-value pair, Supercite firsts
prompts you for the key to add. Note that completion is turned on
for this prompt, but you can type any key name here, even one that
does not yet exist. After entering the key, Supercite prompts you
for the key's value. It is not an error to enter a key that
already exists, but the new value will override any old value. It
will not replace it though; if you subsequently delete the
key-value pair, the old value will reappear.
`sc-mail-process-headers' (`C-c C-p g')
This command lets you re-initialize Supercite's info alist from
any set of mail headers in the region between `point' and `mark'.
This function is especially useful for replying to digest messages
where Supercite will initially set up its information for the
digest originator, but you want to cite each component article
with the real message author. Note that unless an error during
processing occurs, any old information is lost.
File: supercite.info, Node: Miscellaneous Commands, Next: Information Keys and the Info Alist, Prev: Mail Field Commands, Up: Post-yank Formatting Commands
Miscellaneous Commands
======================
`sc-open-line' (`C-c C-p o')
Similar to Emacs' standard `open-line' commands, but inserts the
citation string in front of the new line. As with `open-line', an
optional numeric argument inserts that many new lines.
`sc-describe' (`C-c C-p h' and `C-c C-p ?')
This function has been obsoleted by the TeXinfo manual you are now
reading. It is still provided for compatibility, but it will
eventually go away.
`sc-version' (`C-c C-p v')
Echos the version of Supercite you are using. With the optional
universal argument (`C-u'), this command inserts the version
information into the current buffer.
`sc-submit-bug-report' (`C-c C-p C-b')
If you encounter a bug, or wish to suggest an enhancement, use this
command to set up an outgoing mail buffer, with the proper address
to the Supercite maintainer automatically inserted in the `To:'
field. This command also inserts information that the Supercite
maintainer can use to recreate your exact setup, making it easier
to verify your bug.
File: supercite.info, Node: Hints to MUA Authors, Next: Version 3 Changes, Prev: Electric References, Up: Top
Hints to MUA Authors
********************
In June of 1989, some discussion was held between the various MUA
authors, the Supercite author, and other Supercite users. These
discussions centered around the need for a standard interface between
MUAs and Supercite (or any future Supercite-like packages). This
interface was formally proposed by Martin Neitzel on Fri, 23 Jun 89, in
a mail message to the Supercite mailing list:
Martin> Each news/mail-reader should provide a form of
Martin> mail-yank-original that
Martin> 1: inserts the original message incl. header into the
Martin> reply buffer; no indentation/prefixing is done, the header
Martin> tends to be a "full blown" version rather than to be
Martin> stripped down.
Martin> 2: `point' is at the start of the header, `mark' at the
Martin> end of the message body.
Martin> 3: (run-hooks 'mail-yank-hooks)
Martin> [Supercite] should be run as such a hook and merely
Martin> rewrite the message. This way it isn't anymore
Martin> [Supercite]'s job to gather the original from obscure
Martin> sources. [...]
This specification was adopted, but with the recent release of FSF
GNU Emacs 19, it has undergone a slight modification. Instead of the
variable `mail-yank-hooks', the new preferred hook variable that the
MUA should provide is `mail-citation-hook'. `mail-yank-hooks' can be
provided for backward compatibility, but `mail-citation-hook' should
always take precedence. Richard Stallman (of the FSF) suggests that
the MUAs should `defvar' `mail-citation-hook' to `nil' and perform some
default citing when that is the case. Take a look at Emacs 19's
`sendmail.el' file, specifically the `mail-yank-original' defun for
details.
If you are writing a new MUA package, or maintaining an existing MUA
package, you should make it conform to this interface so that your users
will be able to link Supercite easily and seamlessly. To do this, when
setting up a reply or forward buffer, your MUA should follow these
steps:
1. Insert the original message, including the mail headers into the
reply buffer. At this point you should not modify the raw text in
any way, and you should place all the original headers into the
body of the reply. This means that many of the mail headers will
be duplicated, one copy above the `mail-header-separator' line and
one copy below, however there will probably be more headers below
this line.
2. Set `point' to the beginning of the line containing the first mail
header in the body of the reply. Set `mark' at the end of the
message text. It is very important that the region be set around
the text Supercite is to modify and that the mail headers are
within this region. Supercite will not venture outside the region
for any reason, and anything within the region is fair game, so
don't put anything that *must* remain unchanged inside the region.
Further note that for Emacs 19, the region need not be set
active. Supercite will work properly when the region is inactive,
as should any other like-minded package.
3. Run the hook `mail-citation-hook'. You will probably want to
provide some kind of default citation functions in cases where the
user does not have Supercite installed. By default, your MUA
should `defvar' `mail-citation-hook' to `nil', and in your yanking
function, check its value. If it finds `mail-citation-hook' to be
`nil', it should perform some default citing behavior. User who
want to connect to Supercite then need only add `sc-cite-original'
to this list of hooks using `add-hook'.
If you do all this, your users will not need to overload your
routines to use Supercite, and your MUA will join the ranks of those
that conform to this interface "out of the box."
File: supercite.info, Node: Version 3 Changes, Next: Thanks and History, Prev: Hints to MUA Authors, Up: Top
Version 3 Changes
*****************
With version 3, Supercite has undergone an almost complete rewrite,
and has hopefully benefitted in a number of ways, including vast
improvements in the speed of performance, a big reduction in size of the
code and in the use of Emacs resources, and a much cleaner and flexible
internal architecture. The central construct of the info alist, and its
role in Supercite has been expanded, and the other central concept, the
general package Regi, was developed to provide a theoretically unlimited
flexibility.
But most of this work is internal and not of very great importance
to the casual user. There have been some changes at the user-visible
level, but for the most part, the Supercite configuration variables from
version 2 should still be relevant to version 3. Below, I briefly
outline those user-visible things that have changed since version 2. For
details, look to other sections of this manual.
1. Supercite proper now comes in a single file, `supercite.el', which
contains everything except the unsupported noodlings, overloading
(which should be more or less obsolete with the release of Emacs
19), and the general lisp packages `reporter.el' and `regi.el'.
Finally, the TeXinfo manual comes in its own file as well. In
particular, the file `sc.el' from the version 2 distribution is
obsolete, as is the file `sc-elec.el'.
2. `sc-spacify-name-chars' is gone in version 3.
3. `sc-nickname-alist' is gone in version 3. The
`sc-attrib-selection-list' is a more general construct supporting
the same basic feature.
4. The version 2 variable `sc-preferred-attribution' has been changed
to `sc-preferred-attribution-list', and has been expanded upon to
allow you to specify an ordered list of preferred attributions.
5. `sc-mail-fields-list' has been removed, and header nuking in
general has been greatly improved, giving you wider flexibility in
specifying which headers to keep and remove while presenting a
simplified interface to commonly chosen defaults.
6. Post-yank paragraph filling has been completely removed from
Supercite, other packages just do it better than Supercite ever
would. Supercite will still fill newly cited paragraphs.
7. The variable `sc-all-but-cite-p' has been replaced by
`sc-cite-region-limit'.
8. Keymap hacking in the reply buffer has been greatly simplified,
with, I believe, little reduction in functionality.
9. Hacking of the reply buffer's docstring has been completely
eliminated.
File: supercite.info, Node: Thanks and History, Next: The Supercite Mailing List, Prev: Version 3 Changes, Up: Top
Thanks and History
******************
The Supercite package was derived from its predecessor Superyank 1.11
which was inspired by various bits of code and ideas from Martin Neitzel
and Ashwin Ram. They were the folks who came up with the idea of
non-nested citations and implemented some rough code to provide this
style. Superyank and Supercite version 2 evolved to the point where much
of the attribution selection mechanism was automatic, and features have
been continuously added through the comments and suggestions of the
Supercite mailing list participants. Supercite version 3 represents a
nearly complete rewrite with many of the algorithms and coding styles
being vastly improved. Hopefully Supercite version 3 is faster,
smaller, and much more flexible than its predecessors.
In the version 2 manual I thanked some specific people for their
help in developing Supercite 2. You folks know who you are and your
continued support is greatly appreciated. I wish to thank everyone on
the Supercite mailing list, especially the brave alpha testers, who
helped considerably in testing out the concepts and implementation of
Supercite version 3. Special thanks go out to the MUA and Emacs
authors Kyle Jones, Stephen Gildea, Richard Stallman, and Jamie
Zawinski for coming to a quick agreement on the new
`mail-citation-hook' interface, and for adding the magic lisp to their
code to support this.
All who have helped and contributed have been greatly appreciated.
File: supercite.info, Node: The Supercite Mailing List, Next: Concept Index, Prev: Thanks and History, Up: Top
The Supercite Mailing List
**************************
The author runs a simple mail expanding mailing list for discussion
of issues related to Supercite. This includes enhancement requests, bug
reports, general help questions, etc. To subscribe or unsubscribe to
the mailing list, send a request to the administrative address:
Internet: supercite-request@anthem.nlm.nih.gov
UUCP: uunet!anthem.nlm.nih.gov!supercite-request
Please be sure to include the most reliable and shortest (preferably
Internet) address back to you. To post articles to the list, send your
message to this address (you do not need to be a member to post, but be
sure to indicate this in your article or replies may not be CC'd to
you):
Internet: supercite@anthem.nlm.nih.gov
UUCP: uunet!anthem.nlm.nih.gov!supercite
If you are sending bug reports, they should go to the following
address, but *please*! use the command `sc-submit-bug-report' since it
will be much easier for me to duplicate your problem if you do so. It
will set up a mail buffer automatically with this address on the `To:'
line:
Internet: supercite-help@anthem.nlm.nih.gov
UUCP: uunet!anthem.nlm.nih.gov!supercite-help
File: supercite.info, Node: Concept Index, Next: Command Index, Prev: The Supercite Mailing List, Up: Top
Concept Index
*************
* Menu:
* .emacs file: Overloading for Non-conforming MUAs.
* .emacs file: Getting Connected.
* .emacs file: VM with any Emacsen.
* .emacs file: Emacs 19 MUAs.
* .emacs file: Emacs 18 MUAs.
* .emacs file: MH-E with any Emacsen.
* add-hook substitute: Emacs 18 MUAs.
* attribute, attributing: Usage Overview.
* attribution info field (sc-): Information Keys and the Info Alist.
* attribution list: Selecting an Attribution.
* attribution string: Citation Elements.
* author info field (sc-): Information Keys and the Info Alist.
* author names: Author Names.
* autoload: Getting Connected.
* citation: Citations.
* citation delimiter: Citation Elements.
* citation info field (sc-): Information Keys and the Info Alist.